package cn.seaboot.admin.quartz.core;

import org.quartz.utils.Key;
import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Component;

import java.lang.annotation.*;

/**
 * 计划任务注解
 * <p>
 * 一个很容易理解的注解，系统会自动扫描带有这个接口的 Service，并将其添加到任务调度中
 *
 * @author Mr.css
 * @version 2020-12-03 12:00
 * @see QuartzStarter
 */
@Component
@Documented
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface QuartzScheduled {

    @AliasFor("cron")
    String value() default "";

    @AliasFor("value")
    String cron() default "";

    String jobName();

    String triggerName();

    String jobGroup() default Key.DEFAULT_GROUP;

    String triggerGroup() default Key.DEFAULT_GROUP;
}